/**
 * @name utils.js
 * @description 基本工具函数
 * @author 'fwq'
 * @time 2021/10/17
 */
import { UUID2, UUID3 } from "./uuid.js"
import { getStyle, LoadStyle } from "./style.js"
import { formatDate, formatChatDate } from "./date.js"

const copyText = (text) => {
  try {
    const input = document.createElement('textarea')
    input.value = text
    document.body.appendChild(input)
    input.select()
    document.execCommand('copy')
    document.body.removeChild(input)
    return true
  } catch (error) {
    return false
  }
}

function saveJSON (data, filename) {
  if (!data) {
    alert('保存的数据为空')
    return
  }
  if (!filename) filename = 'json.json'
  if (typeof data === 'object') {
    data = JSON.stringify(data, undefined, 4)
  }
  let blob = new Blob([data], { type: 'text/json' }),
    e = document.createEvent('MouseEvents'),
    a = document.createElement('a')
  a.download = filename
  a.href = window.URL.createObjectURL(blob)
  a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
  e.initMouseEvent(
    'click',
    true,
    false,
    window,
    0,
    0,
    0,
    0,
    0,
    false,
    false,
    false,
    false,
    0,
    null
  )
  a.dispatchEvent(e)
}

export {
  getStyle,
  LoadStyle,
  UUID2,
  UUID3,
  copyText,
  saveJSON,
  formatDate,
  formatChatDate,
}
